/**
 * 平台报警分析
 */
$(function(){
	PlatAlarm.init();
});
var PlatAlarm = {
	init: function(){
		var me = this;
		me.initQueryTime();
		me.initTableTitle();
		me.initEvent();
		//加载司机下拉框
		me.loadAlarmType();
		//默认查询
		$("#queryBtn").trigger("click");
	},
	getToday : function(){
		var todayDate = new Date();
        var yyyy = todayDate.getFullYear();
        var mm = todayDate.getMonth()+1;
        var dd = todayDate.getDate();  
        if (mm.toString().length == 1) {
	        mm = '0' + mm;
	    }
	    if (dd.toString().length == 1) {
	        dd = '0' + dd;
	    }
        return yyyy + '-' + mm + '-' + dd;
	},
    initQueryTime:function(){
        var todayDate = new Date();
    
       
        if(flag){        
        	var todayDateStr = PlatAlarm.getToday();
        	$("#inputStartDate").val(todayDateStr);
   	        $("#inputEndDate").val(todayDateStr);
        }else{	
	        var beforeDate = new Date(todayDate-86400000*1); //前一天
		    var yyyy = beforeDate.getFullYear(), mm = (beforeDate.getMonth() + 1).toString(), dd = beforeDate.getDate().toString();
		    if (mm.length == 1) {
		        mm = '0' + mm;
		    }
		    if (dd.length == 1) {
		        dd = '0' + dd;
		    }
	        $("#inputStartDate").val(yyyy + '-' + mm + '-' + dd);
	        $("#inputEndDate").val(yyyy + '-' + mm + '-' + dd);
        }
			
    },
	initEvent: function(){
		$("#queryBtn").on('click',function(){
			var startTime = $("#inputStartDate").val() + " 00:00:00";
			var endTime = $("#inputEndDate").val() + " 00:00:00";
			var end_str = (endTime).replace(/-/g,"/");//一般得到的时间的格式都是：yyyy-MM-dd hh24:mi:ss，所以我就用了这个做例子，是/的格式，就不用replace了。  
			var end_date = new Date(end_str).getTime();//将字符串转化为时间  
			//开始时间  
			var sta_str = (startTime).replace(/-/g,"/");  
			var sta_date = new Date(sta_str).getTime();
			var days = (end_date - sta_date)/(1000 * 60 * 60 * 24);
			if (days < 0) {
	            global.ajaxLoading.pop("开始时间不能大于结束时间", false, 2000);
	            return;
            }
			if (days > 7) {
	            global.ajaxLoading.pop("平台报警查询不能超过7天", false, 2000);
	            return;
            }
			PlatAlarm.tableReload();
		});
    	$("#exportExcel").on('click',function(){
    		PlatAlarm.exportExcel();
    	});
        $("#confirmExport").click(function () {
        	PlatAlarm.exportComfirm();
        })
	},
    // 获取查询条件
    getParams: function () {
    	var alarmType = $("#alarmType").val();
        var startTime = $("#inputStartDate").val();
        var endTime = $("#inputEndDate").val();
        var params = [{
        	name: 'alarmType',
            value: alarmType
        }, {
            name: 'startTime',
            value: startTime
        }, {
            name: 'endTime',
            value: endTime
        }];
        return params;
    },
    loadAlarmType :function(){
    	$.ajax({    	
        	type : 'POST',
    		async : true,
    		url : appCtx + "report/queryAlarmType.html?time="+ new Date().getTime(),
    		cache : true,
    		dataType : "JSON",
    		success : function(data) {
    			var selectStr = "<option value=''>全部报警</option>";
    			if(data){
    				$.each(data,function(entryIndex,entry) {
    					selectStr+="<option value='"+entry.id+"'>"+entry.name+"</option>";
    				});
    			}
    			$('#alarmType').html(selectStr);
    			$('#alarmType').select2();
    		}
        });
	},
    initTableTitle:function(){
        var getVehicleColor = function(vehicle_color){
        	return global.carColor(vehicle_color);
        };
        var getAlarm_src = function(alarm_src){
        	if(alarm_src == 1){
        		return "终端";
        	}else if(alarm_src == 2){
        		return "企业平台";
        	}
        	else if(alarm_src == 3){
        		return "监管平台";
        	}
        };
        var getFormatTime = function (msg){
	  	    if (msg != "" && null != msg && undefined != msg ) {
	  	    	var outTime = "0";
		  		var date = new Date(parseInt(msg)); 
	  		    var y = date.getFullYear();    
	  		    var m = date.getMonth() + 1;    
	  		    m = m < 10 ? ('0' + m) : m;    
	  		    var d = date.getDate();    
	  		    d = d < 10 ? ('0' + d) : d;    
	  		    var h = date.getHours();  
	  		    h = h < 10 ? ('0' + h) : h;  
	  		    var minute = date.getMinutes();  
	  		    var second = date.getSeconds();  
	  		    minute = minute < 10 ? ('0' + minute) : minute;    
	  		    second = second < 10 ? ('0' + second) : second;   
	  		    outTime = y + '-' + m + '-' + d+'  '+h+':'+minute+':'+second;
	  		    return outTime;
		  	}else{
		  		return "";
		  	}
		 };
		 
		 var getAlarmPosition = function(vehicle_no,vehicle_color,alarm_time,lng,lat){
			 if(lng == undefined || lng == "undefined"){
				 lng = 0;
			 }
			 if(lat == undefined || lat == "undefined"){
				 lat = 0;
			 }
			 var vehicle_no_color = encodeURI(vehicle_no + "_" + vehicle_color);
			 return "<a target='_blank' href='" + appCtx + "/report/alarmSyn/toVehiclePosition.html?vehicle_no_color=" + vehicle_no_color + "&lng=" + lng + "&lat=" + lat + "&alarm_time=" + alarm_time + "'>查看地图</a>";
		 };
		 
		 var toDriver = function(licence,driverName){
			 return "<a target='_blank' href='" + appCtx + "/base/PubDriver/toAlarmDriver.html?licence=" + licence + "'>" + driverName + "</a>";
		 };
    	$("#objTable").flexigrid({
	            dataType : 'json',
	            colModel : [{
	                display : '车牌号',
	                name : 'vehicle_no',
	                width : 10,
	                sortable:false,
	                align : 'left'
	            },{
	                display : '颜色',
	                width : 5,
	                name : 'vehicle_color',
	                align : 'left',
	                sortable:false,
	                paramcolnames:['vehicle_color'],
	                handlefunction : getVehicleColor
	            },{
	            	display : '业户名称',
	            	name : 'enterprise_name',
	            	width : 17,
	            	align : 'left',
	            	sortable:false
	            },{
	                display : '平台名称',
	                name : 'platform_name',
	                width : 17,
	                align : 'left',
	                sortable:false,
	            },{
	            	display : '报警类型',
	            	name : 'alarm_type',
	            	width : 8,
	            	align : 'left',
	            	sortable:false
	            },{
	                display : '报警来源',
	                name : 'alarm_src',
	                width : 8,
	                align : 'left',
	                sortable:false,
	                paramcolnames:['alarm_src'],
	                handlefunction : getAlarm_src
	            },{
	                display : '报警时间',
	                name : 'alarm_time',
	                width : 15,
	                align : 'left',
	                sortable:false,
	                paramcolnames:['alarm_time'],
	                handlefunction : getFormatTime
	            },{
	                display : '报警位置',
	                name : 'vehicle_no',
	                width : 20,
	                align : 'left',
	                sortable:false,
	                paramcolnames:['vehicle_no','vehicle_color','alarm_time','lng','lat'],
	                handlefunction : getAlarmPosition
	            }] ,
	            usepager : true,// 是否分页，默认为true。
	            resizable : false,
				sortname : "id",// 第一次加载数据时排序列
				sortorder : "desc",// 第一次加载数据时排序类型
				usepager : true,// 是否分页，默认为true
				nowrap: true, //是否不换行
				showToggleBtn : false,
				showTableToggleBtn : true,// 是否显示收起/打开按钮,默认不显示。
				useRp : true,// 是否可以动态设置每页显示的结果数，默认为false。
				rp : 10,// 每页记录数，默认为10
				rpOptions: [10, 20, 50, 100], // 每页结果数
				checkbox : false,// 是否要多选框,默认为false。
				rowId : 'id',// 多选框绑定行的id,只有checkbox : true时才有效。
	            height:$(window).height() - 240,
	            width:$('.detail-report').width(),
	            widthType:"%"
	         });	 
    },
	tableReload: function(){
		$("#objTable").flexOptions({
			newp :1,// 设置起始页
			url : appCtx + "/report/platAlarm/getTableData.html",
			params : PlatAlarm.getParams()
		}).flexReload();
	},
	exportExcel:function(){
		var options = $("#objTable").getOptions();
        var total = options.total;
        if (total == 0) {
            global.ajaxLoading.pop("无导出数据", false, 2000);
            return;
        }
        var pages = options.pages;
        //设置默认的开始结束页
        $("#StartPageIndex").val(1);
        $("#EndPageIndex").val(pages);
        //显示导出窗口
        $("#exportModal").modal('show');
	},
    exportComfirm: function(){
    	var me = this;
    	var options = $("#objTable").getOptions();
        //总记录数
        var total = options.total;
        //开始页数
        var StartPage = $("#StartPageIndex").val();
        //结束页数
        var EndPage = $("#EndPageIndex").val();
        var validate = true;
        var msg = "";
        if (!StartPage || StartPage == 0) {
            msg += "【起始页不能为空或者0】";
            validate = false;
        }
        if (!EndPage || EndPage == 0) {
            msg += "【结束页不能为空或者0】";
            validate = false;
        }

        if (StartPage && EndPage && EndPage < StartPage) {
            msg += "【结束页要大于起始页】";
            validate = false;
        }
        if (!validate) {
            global.ajaxLoading.pop(msg, false, 2000);
            return;
        }
        $('#exportModal').modal('hide');
        global.ajaxLoading.pop("正在导出,请稍后.....", true, 2000);
        //每页大小
        var pagesize = options.rp;
        //获取导出的参数
        var exportParams = options.exportParams;
        if ((EndPage - StartPage + 1) * pagesize > 60000 && total > 60000) {
        	global.ajaxLoading.pop("最多只能导出60000条数据", true, 2000);
            return
        }
		var header1 = JSON.stringify(me.getColumn());
		//表头
		var colModelList=new Array();
		colModelList.push(header1);
		var colModel= $.toJSON(colModelList);
		var param =  {
				StartPage:StartPage,
				EndPage:EndPage,
				PageSize:pagesize,
				startTime:$("#inputStartDate").val()+" 00:00:00",
				endTime: $("#inputEndDate").val()+" 23:59:59",
				alarmType: $("#alarmType").val(),
				colModel:colModel,
				title:"报警综合分析报表",
		};
		post(appCtx+"report/platAlarm/exportQueryResult.html",param);
	},
	getColumn:function(){
		return [{
            display : '车牌号',
            name : 'vehicle_no',
            width : 100,
            align : 'left'
        },{
            display : '颜色',
            width : 50,
            name : 'vehicle_color',
            align : 'left'
        },{
        	display : '业户名称',
        	name : 'enterprise_name',
        	width : 170,
        	align : 'left'
        },{
            display : '平台名称',
            name : 'platform_name',
            width : 170,
            align : 'left'
        },{
        	display : '报警类型',
        	name : 'alarm_type',
        	width : 80,
        	align : 'left'
        },{
            display : '报警来源',
            name : 'alarm_src',
            width : 80,
            align : 'left'
        },{
            display : '报警时间',
            name : 'alarm_time',
            width : 150,
            align : 'left'
        }]
	}
};
